Višja dinamika

Nelinearni sistemi

Dr. Janko Slavič, April 2013

Fazna metoda

ContourPlot[(z^2)==2 (Cos[π x]-Cos[(180/180)π]),{x,-2,2},{z,-4,4},ContourStyle->Thickness[0.01]]

Animate[ContourPlot[(z^2)==2 (Cos[π x]-Cos[π x0]),{x,-2,2},{z,-4,4},PlotPoints->50],{x0,-π,π,0.01}]

Eksaktna metoda

sol=Integrate[(1/(Sqrt[2(Cos[φ]-Cos[φ0])])),{φ,φ0,0}]

t[φ0_]=-4((Simplify[sol,Cos[φ0]≤1])/(2π))

Chop[N[t[135 (π/180)]]]

Duffingov sistem - kubična nelinearnost

Remove["Global`*"]
eq=x''[t]+((ω0)^2) x[t]+ϵ ((x[t])^3)==0;

T=1;
ω0P=10 2π;
zamenjava={ω0->ω0P,ϵ->((ω0P)^2)(10^0.5),A0->.5};
Clear[x];
sol=NDSolve[
{
eq/.zamenjava,
x[0.]==A0/.zamenjava,
x'[0.]==0.
},x[t],{t,0,T}];
x[t_]=First[x[t]/.sol]

fig2=Plot[x[t],{t,0,T},Frame->True,Axes->False,PlotStyle->Red]

Fig2=ListPlot[RotateLeft[Take[Abs[Fourier[Table[x[t],{t,0,T,(T/1000)}]]],100],1],PlotRange->All,Joined->True,Frame->True,Axes->False,PlotStyle->Red]

Lindstedt-Poincare rešitev

LP1=N[(1/(2π))(Sqrt[((ω0)^2)+ϵ (3/4)(A0^2)])/.zamenjava]

Show[{fig1,fig2},PlotRange->All]

Show[{Fig1,Fig2}]

{LP1,LP2}

Duffingov sistem - vsiljeni sistem s kubično nelinearnostjo

Remove["Global`*"]
eq=x''[t]+((ω0)^2) x[t]+d x'[t]+ϵ ((x[t])^3)==F Cos[ω t];

T=1;
ω0P=10 2π;
zamenjava={F->10000,d->20,ω0->ω0P,ϵ->((ω0P)^2)(10^(.5))};
Clear[x];
sol=NDSolve[
{
eq/.ω->10 2π/.zamenjava,
x[0.]==1,
x'[0.]==0.
},x[t],{t,0,T}];
x[t_]=First[x[t]/.sol]

fig1=Plot[x[t],{t,0,T},Frame->True,Axes->False,PlotStyle->Blue]

getAmp[ωW_]:=Module[{dat},
Clear[x];
sol=NDSolve[
{
eq/.zamenjava/.ω->ωW,
x[0.]==x0,
x'[0.]==0.
},x[t],{t,0,T}];
x[t_]=First[x[t]/.sol];
dat=Table[x[t],{t,T/2,T,T/1000}];
x0=Max[dat];
x0
]

x0=0.01;
data=Table[{(ω/(2π)),getAmp[ω]},{ω,1 2π,60 2π,2π}];

fig1=ListPlot[data,PlotRange->All,Frame->True,Joined->True,Axes->False,PlotStyle->Blue]

x0=0.01;
data=Table[{(ω/(2π)),getAmp[ω]},{ω,60 2π,1 2π,-2π}];

fig2=ListPlot[data,PlotRange->All,Frame->True,Joined->True,Axes->False,PlotStyle->Red]

Show[{fig1,fig2}]